package com.spsoft.core.model.leqidmz.response;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.Date;
import java.util.List;

/**
 * 税收分类编码分页VO
 *
 * @author dcy
 * @date 2023/12/07
 */
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "税收分类编码分页")
public class QueryClassifyCodeVO extends BaseResponseVO {

    /**
     * 时间戳
     */
    @ApiModelProperty(value = "时间戳")
    private Date sjc;

    /**
     * 总数量
     */
    @ApiModelProperty(value = "总数量")
    private Long count;

    /**
     * 税收分类编码信息列表
     */
    @ApiModelProperty(value = "税收分类编码信息列表")
    private List<ClassifyCodeInfo> ssbmList;

    /**
     * 税收分类编码信息
     */
    @Data
    @ApiModel(value = "税收分类编码信息")
    public static class ClassifyCodeInfo {

        /**
         * 父级编码
         */
        @ApiModelProperty(value = "父级编码")
        private String fjbm;

        /**
         * 商品和服务税收分类合并编码
         */
        @ApiModelProperty(value = "商品和服务税收分类合并编码")
        private String sphfwssflhbbm;

        /**
         * 特定要素标签归类
         */
        @ApiModelProperty(value = "特定要素标签归类;01：成品油,02：稀土,03：建筑服务,04：货物运输,05：不动产销售,06：不动产租赁,07：代收车船使用税,08：通行费,09：旅客运输,10：医疗服务,11：农产品,12：拖拉机和联合收割机,13：机动车,14：光伏收购,15：卷烟")
        private String tdyslxdm;

        /**
         * 差额征税
         */
        @ApiModelProperty(value = "差额征税;Y：是 N：否")
        private String cezs;

        /**
         * 不征税
         */
        @ApiModelProperty(value = "不征税;Y：是 N：否")
        private String bzs;

        /**
         * 即征即退代码
         */
        @ApiModelProperty(value = "即征即退代码集合;01：增值税即征即退-软件产品,  02：增值税即征即退-资源综合利用产品, 03：增值税即征即退-管道运输服务,  04：增值税即征即退-有形动产融资租赁服务,  05：增值税即征即退-有形动产融资性售后回租服务,  06：增值税即征即退-新型墙体材料,  07：增值税即征即退-风力发电产品,  08：增值税即征即退-光伏发电产品,  09：增值税即征即退-动漫软件产品,  10：增值税即征即退-飞机维修劳务,  11：增值税即征即退-黄金,  12：增值税即征即退-铂金")
        private String jzjtdm;

        /**
         * 商品和服务名称
         */
        @ApiModelProperty(value = "商品和服务名称")
        private String sphfwmc;

        /**
         * 商品和服务分类简称
         */
        @ApiModelProperty(value = "商品和服务分类简称")
        private String sphfwfljc;

        /**
         * 说明
         */
        @ApiModelProperty(value = "说明")
        private String sm;

        /**
         * 增值税税率
         */
        @ApiModelProperty(value = "增值税税率")
        private String zzssl;

        /**
         * 征收率
         */
        @ApiModelProperty(value = "征收率")
        private String zsl;

        /**
         * 增值税特殊管理
         */
        @ApiModelProperty(value = "增值税特殊管理")
        private String zzstsgl;

        /**
         * 增值税政策依据
         */
        @ApiModelProperty(value = "增值税政策依据")
        private String zzszcyj;

        /**
         * 增值税特殊内容代码
         */
        @ApiModelProperty(value = "增值税特殊内容代码（增值税减免税政策代码表）")
        private String zzstsnrdm;

        /**
         * 消费税管理
         */
        @ApiModelProperty(value = "消费税管理")
        private String xfsgl;

        /**
         * 消费税政策依据
         */
        @ApiModelProperty(value = "消费税政策依据")
        private String xfszcyj;

        /**
         * 消费税特殊内容代码
         */
        @ApiModelProperty(value = "消费税特殊内容代码")
        private String xfstsnrdm;

        /**
         * 关键字
         */
        @ApiModelProperty(value = "关键字")
        private String gjz;

        /**
         * 是否汇总项;Y：是，N：否
         */
        @ApiModelProperty(value = "是否汇总项;Y：是，N：否")
        private String sfhzx;

        /**
         * 对应统计局编码（2011年版）或国民行业代码
         */
        @ApiModelProperty(value = "对应统计局编码（2011年版）或国民行业代码")
        private String dytjjbm;

        /**
         * 海关进出口商品品目
         */
        @ApiModelProperty(value = "海关进出口商品品目")
        private String hgjcksppm;

        /**
         * 启用日期 时间格式：YYYY-MM-DD
         */
        @ApiModelProperty(value = "启用日期;时间格式：YYYY-MM-DD")
        private Date qyrq;

        /**
         * 停用日期;时间格式：YYYY-MM-DD
         */
        @ApiModelProperty(value = "停用日期;时间格式：YYYY-MM-DD")
        private Date tyrq;

        /**
         * 行业代码信息列表
         */
        @ApiModelProperty(value = "行业代码信息列表")
        private List<HydmInfo> zspmList;
    }

    @Data
    @ApiModel(value = "税收分类行业信息列表")
    public static class HydmInfo {

        /**
         * 行业代码
         */
        @ApiModelProperty(value = "行业代码")
        private String hydm;

        /**
         * 对应的行业
         */
        @ApiModelProperty(value = "对应的行业")
        private String dydhy;

        /**
         * 行业对应的征收品目一
         */
        @ApiModelProperty(value = "行业对应的征收品目一")
        private String hydydzspm1;

        /**
         * 行业对应的征收名称一
         */
        @ApiModelProperty(value = "行业对应的征收名称一")
        private String hydydzsmc1;

        /**
         * 行业对应的征收品目二
         */
        @ApiModelProperty(value = "行业对应的征收品目二")
        private String hydydzspm2;

        /**
         * 行业对应的征收名称二
         */
        @ApiModelProperty(value = "行业对应的征收名称二")
        private String hydydzsmc2;
    }
}
